package com.songlanyun.modules.payrefund.service;

import com.songlanyun.common.drive.IBaseService;
import com.songlanyun.common.enums.OrderConstant;
import com.songlanyun.common.enums.RightsOrderConstant;
import com.songlanyun.common.utils.PageUtils;
import com.songlanyun.modules.payorder.entity.PayOrder;
import com.songlanyun.modules.payrefund.entity.PayRefundOrder;

import java.math.BigDecimal;
import java.util.Map;

/**
 * 退款系统订单
 *
 * @author lubo
 * @email sunlightcs@gmail.com
 * @date 2020-11-24 18:09:07
 */
public interface PayRefundOrderService extends IBaseService<Long,PayRefundOrder> {

    PageUtils queryPage(Map<String, Object> params);

    PayRefundOrder callbackHandle(String outTradeNo, String refundId, BigDecimal money, OrderConstant.PayMode payMode);
    PayRefundOrder callbackFailHandle(String outTradeNo, String refundId, BigDecimal money, OrderConstant.PayMode payMode);
    PayRefundOrder callbackHandle(PayRefundOrder payRefundOrder, String refundId, BigDecimal money, OrderConstant.PayMode payMode);

    PayRefundOrder getByCode(String refundCode, Boolean tw);

    PayRefundOrder setRefundStatus(PayRefundOrder payRefundOrder, RightsOrderConstant.RightsRefundStatus status);
}

